/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package entidade;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

@Entity
@SequenceGenerator(name = "PK_FATURA", sequenceName = "GEN_FATURA_ID")
@Table(name="fatura")
public class Fatura extends AbstractModelObject{
    
	@Id
	@GeneratedValue(strategy = GenerationType.AUTO, generator = "PK_FATURA")
	@Column(name="cd_fatura")
    private Integer codigo;
	@JoinColumn(name="cd_usuario", referencedColumnName="cd_usuario")
	@ManyToOne(fetch = FetchType.LAZY)
    private Usuario usuario;
	@JoinColumn(name="cd_cartao", referencedColumnName="cd_cartao")
	@ManyToOne(fetch = FetchType.LAZY)
    private Cartao cartao;
	@Temporal(TemporalType.DATE)
	private Date dtCompra;
    private String historico;
    private Float valor;
    private String referencia;
    @Temporal(TemporalType.DATE)
    private Date dtPagamento;
    
    public Integer getCodigo() {
        return codigo;
    }

    public void setCodigo(Integer codigo) {
        this.codigo = codigo;
    }

    public Cartao getCartao() {
        return cartao;
    }

    public void setCartao(Cartao cartao) {
    	Cartao oldValue = this.cartao;
        this.cartao = cartao;
        firePropertyChange("cartao", oldValue, this.cartao);
    }

    public Date getDtCompra() {
        return dtCompra;
    }

    public void setDtCompra(Date dtCompra) {
    	Date oldValue = this.dtCompra;
        this.dtCompra = dtCompra;
        firePropertyChange("dtCompra", oldValue, this.dtCompra);
    }

    public Date getDtPagamento() {
        return dtPagamento;
    }

    public void setDtPagamento(Date dtPagamento) {
    	Date oldValue = this.dtPagamento;
        this.dtPagamento = dtPagamento;
        firePropertyChange("dtPagamento", oldValue, this.dtPagamento);
    }

    public String getHistorico() {
        return historico;
    }

    public void setHistorico(String historico) {
    	String oldValue = this.historico;
        this.historico = historico;
        firePropertyChange("historico", oldValue, this.historico);
    }
    
    public String getReferencia() {
		return referencia;
	}

	public void setReferencia(String referencia) {
		String oldValue = this.referencia;
		this.referencia = referencia;
		firePropertyChange("referencia", oldValue, this.referencia);
	}

    public Usuario getUsuario() {
        return usuario;
    }

    public void setUsuario(Usuario usuario) {
    	Usuario oldValue = this.usuario;
        this.usuario = usuario;
        firePropertyChange("usuario", oldValue, this.usuario);
    }

    public Float getValor() {
        return valor;
    }

    public void setValor(Float valor) {
    	Float oldValue = this.valor;
        this.valor = valor;
        firePropertyChange("valor", oldValue, this.valor);
    }
}
